import SVGDesigner from "../chart/SVGDesigner"
import { SVGSetting } from "../chart/type";
import { SvgConfig } from "../chart/typeSC";

const svgConfig: SvgConfig = {
    'data_source_list': [
        {
            'type': 'DSG',

            'axis_type': { x: 'Date', y: 'Liner' },

            'id': 'dsg_1',
            'data_sources': [
                {
                    'id': 'production',
                    'array_key': 'production',
                    'x_key': 'date',
                    'y_key': 'value'
                },
                {
                    'id': 'export',
                    'array_key': 'export',
                    'x_key': 'date',
                    'y_key': 'value'
                },
                {
                    'id': 'domesticMarket',
                    'array_key': 'domesticMarket',
                    'x_key': 'date',
                    'y_key': 'value'
                }
            ],
            
            'y_reverse': true,
            'nice': { y: true },
            'domain': { y: [30, 80] }
        }
    ],

    'svg_elements': [
        [
            {
                'type': 'Text',

                'id': 'header',
                'width': 800,
                'height': 30,
                'margin': { 'top': 0, 'left': 10, 'right': 90, 'bottom': 20 },
            
                'text': 'Производство автомобильного бензина К5 с начала 2024 года',
                'font_family': 'times new roman',
                'font_size': 25,
            }
        ],
        [
            {
                'type': 'MinMaxInfo',

                'id': 'min_max_info',
                'width': 800,
                'height': 70,
                'margin': { 'top': 0, 'left': 50, 'right': 50, 'bottom': 0 },
            
                'rows': 
                [
                    {
                        'type': 'MinMaxLabelRow',
                        'data_id': 'dsg_1:ds_2', 
                        'scale_x_id': 'dsg_1',
                    },
                    {
                        'type': 'MixMaxInfoRow',
                        'data_id': 'dsg_1:production', 
                        'scale_x_id': 'dsg_1',
                        'color': '#293dff' 
                    },
                    {
                        'type': 'MixMaxInfoRow',
                        'data_id': 'dsg_1:domesticMarket', 
                        'scale_x_id': 'dsg_1', 
                        'color': '#2bb673'
                    },
                    {
                        'type': 'MixMaxInfoRow',
                        'data_id': 'dsg_1:export', 
                        'scale_x_id': 'dsg_1', 
                        'color': '#f15a29'
                    },
                ],
            }
        ],
        [
            { 
                'type': 'Chart',
    
                'id': 'chart_1',

                'width': 800, 
                'height': 500,
                'margin': { 'top': 30, 'left': 50, 'right': 50, 'bottom': 50 },
        
                'chart_elements': [
                    {
                        'type': 'LegendInner',
                        'position': { 'x': 20, 'y': 420 },
                        'font_size': 14,
                        'legends': [
                            { 'color': '#293dff', 'text': 'Производство' },
                            { 'color': '#2bb673', 'text': 'Внутренний рынок' },
                            { 'color': '#f15a29', 'text': 'Экспорт' },
                        ],
                    },
                    {
                        'type': 'MixMaxPoints',
                        'data_id': 'dsg_1:production', 
                        'scale_x_id': 'dsg_1', 
                        'scale_y_id': 'dsg_1',
                        'font_size': 18,
                        'font_weight': 'bold',
                        'radius': 3,
                        'color': '#293dff',
                        'last_point': true,
                    },
                    {
                        'type': 'MixMaxPoints',
                        'data_id': 'dsg_1:domesticMarket', 
                        'scale_x_id': 'dsg_1', 
                        'scale_y_id': 'dsg_1',
                        'font_size': 18,
                        'font_weight': 'bold',
                        'radius': 3,
                        'color': '#2bb673',
                        'last_point': true,
                    },
                    {
                        'type': 'MixMaxPoints',
                        'data_id': 'dsg_1:export', 
                        'scale_x_id': 'dsg_1', 
                        'scale_y_id': 'dsg_1',
                        'font_size': 18,
                        'font_weight': 'bold',
                        'radius': 3,
                        'color': '#f15a29',
                        'last_point': true,
                    },
                    { 
                        'type': 'XAxis', 
                        'data_id': 'dsg_1', 
                        'scale_id': 'dsg_1',
                        'ticks': 'every_month',
                        'font_weight': 'bold',
                        'font_size': 15, 
                        'date_format':  'month_number_short',
                        'last_value': true,
                        'remove_line': false,
                        'horizontal_line': true,
                    },
                    { 
                        'type': 'YAxis', 
                        'data_id': 'dsg_1', 
                        'scale_id': 'dsg_1',
                        'label': 'тыс. т',
                        'ticks': 5,
                        'font_size': 12, 
                        'last_value': false,
                        'remove_domain': true,
                        'remove_line': false,
                        'horizontal_line': true, 
                    },
                    { 
                        'type': 'Line', 
                        'data_id': 'dsg_1:production', 
                        'scale_x_id': 'dsg_1', 
                        'scale_y_id': 'dsg_1',
                        'color': '#293dff' 
                    },
                    { 
                        'type': 'Line', 
                        'data_id': 'dsg_1:domesticMarket', 
                        'scale_x_id': 'dsg_1', 
                        'scale_y_id': 'dsg_1', 
                        'color': '#2bb673' 
                    },
                    { 
                        'type': 'Line', 
                        'data_id': 'dsg_1:export', 
                        'scale_x_id': 'dsg_1', 
                        'scale_y_id': 'dsg_1', 
                        'color': '#f15a29' 
                    },
                ],
            },
        ]
    ]
}

export default defineEventHandler(() => {
    const chartDesigner = new SVGDesigner(svgConfig);

    return chartDesigner.body.innerHTML;
})